Head mounted displays (hereinafter “HMDs”) are often used as visual displays. HMDs are used, for example, for playing games in a virtual three-dimensional space, for simulating the interior of a building, and in various other fields. Typically, an HMD includes a small liquid-crystal display (LCD) for displaying images, an optical means for guiding the images projected on this LCD toward both eyes, and position sensors for detecting the position and direction of the head. The computer connected to the HMD determines the position and direction of the head based on signals received from the position sensors, and presents the LCD with video signals corresponding to the position and direction of the head. This allows the user wearing an HMD to experience the same sensation as when scanning a wide three-dimensional space.
In current implementations, the computer is coupled to the HMD using one or more cables. Typically, the sensory signals are communicated over a USB cable while the video signals are communicated over a HDMI cable. While the cables do provide a secure connection between the signals, the wired connections may be inconvenient and cumbersome for the user in certain situations.
Currently, there is an attempt in the industry to provide a solution that de-couples the HMD from the computer. That is, a wireless HMD device that would be able to communicate with the computers over the air. However, wireless HMDs are immature, inefficient, and thus are not commercially available. One of the reasons for such deficiencies is the low latency and high data rate that is required to display a video on a HMD.
Thus, in order to allow wireless transmission of video signals from a computer to a HMD, it is desirable to reduce the data rate with minimum latency while preserving the high quality of the video. One technique for reducing the data rate is using image (or video frame) compression. However, a straightforward image compression would not be optimized due to the specific structure of the optical means in the HMD. Further, straightforward image compression would usually introduce unacceptable latency and/or require additional circuitry for decoding, which increases the total cost of the HMD.
Geometric distortion is a type of optical distortion that occurs in HMDs. The two common types of geometric distortion are barrel distortion and pincushion distortion. Barrel distortion typically occurs when straight lines are curved inwards in a shape of a barrel. This type of distortion is commonly seen on wide angle lenses, because the field of view of the lens is much wider than the size of the image. As an example, FIG. 1A shows an image 100 as rendered by a computer and FIG. 1B is the image 100 in its barrel distortion form as shown on the HMD. In a pincushion distortion, image magnification increases with the distance from the optical axis. The visible effect is that lines that do not go through the center of the image are bowed inwards, towards the center of the image. The pincushion distortion occurs due to the binoculars-like shape of the HMD.
Further, due to optical attributes of HMD's lenses and display the images are displayed as fisheye images. That is, information is displayed in the circumscribed circle, while peripheral areas are “blacked” out. A fisheye image is depicted FIG. 1A.
Another optical phenomenon specific structure of the optical means in the HMDs is a chromatic distortion (aberration). This type of an effect resulting from dispersion in which there is a failure of a lens to focus all colors to the same convergence point. This type of distraction is illustrated in FIGS. 2A and 2B. FIG. 2A shows an image 200 as rendered by a computer and FIG. 2B is the image 200 in its chromatic distortion form as shown on the HMD. As depicted in FIG. 2B, each “white” point 210 is displayed as the three colored components (Red 221, Green 222, Blue 223).
When rendering images to be displayed on the HMDs, the above-mentioned distortions are considered. That is, a different distortion function would be typically applied to each color component when rendering the image. However, compressing images without considering the various distortions functions would result in an image that cannot be properly displayed on the HMD or with an inefficient compression. That is, currently available compression techniques are not optimized to meet the constraints noted above.
Therefore, it would be advantageous to provide a compression solution that would overcome the deficiencies noted above.